package com.wicket.okrapp.biz.service.dto.common;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import java.util.Objects;

/**
 * @desc AchievementDto
 * @使用场景
 */
@Data
public class AchievementDto extends BaseDto implements Serializable {

  /**
   * 成果ID
   */
  @ApiModelProperty("成果ID")
  private String achievementId;

  /**
   * 成果类型ID
   */
  @ApiModelProperty("成果类型ID")
  private String achievementTypeId;

  /**
   * 成果类型编号
   */
  @ApiModelProperty("成果类型编号")
  private String achievementTypeNumber;

  /**
   * 成果类别ID
   */
  @ApiModelProperty("成果类别ID")
  private String achievementCategoryId;

  /**
   * 成果类别编号
   */
  @ApiModelProperty("成果类别编号")
  private String achievementCategoryNumber;

  /**
   * 成果等级ID
   */
  @ApiModelProperty("成果等级ID")
  private String achievementGradeId;

  /**
   * 成果等级编号
   */
  @ApiModelProperty("成果等级编号")
  private String achievementGradeNumber;

  /**
   * 版权归属对象类型编码
   */
  @ApiModelProperty("版权归属对象类型编码")
  private String copyrightObjectTypeCode;

  /**
   * 是否开启转化成果
   */
  @ApiModelProperty("是否开启转化成果")
  private String isUseConversion;

  /**
   * 是否标志性成果
   */
  @ApiModelProperty("是否标志性成果")
  private String isSymbolicAchievements;

  /**
   * 成果编号
   */
  @ApiModelProperty("成果编号")
  private String achievementNumber;

  /**
   * 成果名称
   */
  @ApiModelProperty("成果名称")
  private String achievementName;

    /**
     * 成果类型名称
     */
    @ApiModelProperty("成果类型名称")
    private String achievementTypeName;

  /**
   * 成果介绍
   */
  @ApiModelProperty("成果介绍")
  private String achievementDesc;

  /**
   * 成果补充介绍
   */
  @ApiModelProperty("成果补充介绍")
  private String achievementAddDesc;

  /**
   * 成果转化介绍
   */
  @ApiModelProperty("成果转化介绍")
  private String achievementConversiontDesc;

  /**
   * 授予单位
   */
  @ApiModelProperty("授予单位")
  private String awardedUnit;

  /**
   * 相关文号
   */
  @ApiModelProperty("相关文号")
  private String relatedDocument;

  /**
   * 授予时间
   */
  @ApiModelProperty("授予时间")
  private Date awardedTime;

  /**
   * 有效期结束时间
   */
  @ApiModelProperty("有效期结束时间")
  private Date validEndTime;

  /**
   * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
   */
  @ApiModelProperty("主体生命周期")
  private String subjectLifeCycle;

  /**
   * 操作人就职记录ID
   */
  @ApiModelProperty("操作人就职记录ID")
  private String operationInductionId;

  /**
   * 创建时间
   */
  @ApiModelProperty("创建时间")
  private Date createTime;

  /**
   * 操作时间
   */
  @ApiModelProperty("操作时间")
  private Date operateTime;
/**
     * 成果类别名称 
     */
    @ApiModelProperty("成果类别名称")
    private String	 achievementCategoryName;

    /**
     * 成果等级名称 
     */
    @ApiModelProperty("成果等级名称")
    private String	 achievementGradeName;
/**
     * 版权归属别名 
     */
    @ApiModelProperty("版权归属别名")
    private String	 belongName;
/**
     * 版权归属对象名称 
     */
    @ApiModelProperty("版权归属对象名称")
    private String	 copyrightObjectName;
/**
     * 成果业务等级ID 
     */
    @ApiModelProperty("成果业务等级ID")
    private String	 achievementBusinessGradeId;
/**
     * 成果业务等级编号 
     */
    @ApiModelProperty("成果业务等级编号")
    private String	 achievementBusinessGradeNumber;

    /**
     * 成果业务等级名称 
     */
    @ApiModelProperty("成果业务等级名称")
    private String	 achievementBusinessGradeName;
/**
     * 业绩责任部门ID 
     */
    @ApiModelProperty("业绩责任部门ID")
    private String	 dutyDeptId;
/**
     * 版权归属对象ID
     */
    @ApiModelProperty("版权归属对象ID")
    private String	 copyrightObjectId;

    /**
     * 部门简称
     */
    @ApiModelProperty("部门简称")
    private String	 deptShortName;
/**
     * 成果库类型 RESERVE_WAREHOUSE:预备库 OFFICIAL_LIBRARY:正式库
     */
    @ApiModelProperty("成果库类型")
    private String	 achiveLibraryType;

    /**
     * 成果冗余状态 TO_BE_RELEASED:待发布 AUDIT:待审核 TO_BE_CERTIFIED:待认证 CERT_SUCCESS:认证成功 CERT_FAIL:认证失败 ARCHIVING:历史存档
     */
    @ApiModelProperty("成果冗余状态")
    private String	 achivementStateCode;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      AchievementDto that = (AchievementDto) o;
      return  achievementId == that.achievementId&&achievementTypeId == that.achievementTypeId&&achievementTypeNumber == that.achievementTypeNumber&&achievementCategoryId == that.achievementCategoryId&&achievementCategoryNumber == that.achievementCategoryNumber&&achievementGradeId == that.achievementGradeId&&achievementGradeNumber == that.achievementGradeNumber&&copyrightObjectTypeCode == that.copyrightObjectTypeCode&&isUseConversion == that.isUseConversion&&isSymbolicAchievements == that.isSymbolicAchievements&&achievementNumber == that.achievementNumber&&achievementName == that.achievementName&&achievementTypeName == that.achievementTypeName&&achievementDesc == that.achievementDesc&&achievementAddDesc == that.achievementAddDesc&&achievementConversiontDesc == that.achievementConversiontDesc&&awardedUnit == that.awardedUnit&&relatedDocument == that.relatedDocument&&awardedTime == that.awardedTime&&validEndTime == that.validEndTime&&subjectLifeCycle == that.subjectLifeCycle&&operationInductionId == that.operationInductionId&&createTime == that.createTime&&operateTime == that.operateTime&&achievementCategoryName == that.achievementCategoryName&&achievementGradeName == that.achievementGradeName&&belongName == that.belongName&&copyrightObjectName == that.copyrightObjectName&&achievementBusinessGradeId == that.achievementBusinessGradeId&&achievementBusinessGradeNumber == that.achievementBusinessGradeNumber&&achievementBusinessGradeName == that.achievementBusinessGradeName&&dutyDeptId == that.dutyDeptId&&copyrightObjectId == that.copyrightObjectId&&deptShortName == that.deptShortName&&achiveLibraryType == that.achiveLibraryType&&achivementStateCode == that.achivementStateCode;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), achievementId,achievementTypeId,achievementTypeNumber,achievementCategoryId,achievementCategoryNumber,achievementGradeId,achievementGradeNumber,copyrightObjectTypeCode,isUseConversion,isSymbolicAchievements,achievementNumber,achievementName,achievementTypeName,achievementDesc,achievementAddDesc,achievementConversiontDesc,awardedUnit,relatedDocument,awardedTime,validEndTime,subjectLifeCycle,operationInductionId,createTime,operateTime,achievementCategoryName,achievementGradeName,belongName,copyrightObjectName,achievementBusinessGradeId,achievementBusinessGradeNumber,achievementBusinessGradeName,dutyDeptId,copyrightObjectId,deptShortName,achiveLibraryType,achivementStateCode);
    }

}
